package com.qf.course.core.service;

import com.qf.course.core.entity.Course;
import com.qf.course.core.entity.CourseApply;

import java.util.List;

/**
 * 课程表(Course)表服务接口
 *
 * @author makejava
 * @since 2022-08-04 10:43:34
 */
public interface CourseService {

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    Course queryById(Integer id);


    /**
     * 新增数据
     *
     * @param course 实例对象
     * @return 实例对象
     */
    Course insert(Course course);

    /**
     * 修改数据
     *
     * @param course 实例对象
     * @return 实例对象
     */
    Course update(Course course);

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 是否成功
     */
    boolean deleteById(Integer id);

    /**
     * 查询所有课程
     * @return
     */
    List<Course> queryAll();


    /**
     * 根据学生信息查询所有课程
     * @return
     */
    List<Course> queryAllByStu(Integer sid);


    /**
     * 根据课程id 批量删除课程信息
     * @param ids
     * @return
     */
    int deletes(int[] ids);

    /**
     * 学生申请课程
     * @param uid
     * @param cid
     * @param type
     * @return
     */
    int courseApply(Integer uid, Integer cid, Integer type);


    /**
     * 根据学生id查询申请列表
     * @param sid
     * @return
     */
    List<CourseApply> queryCourseApply(Integer sid);

}
